Remove unnecessary NULL checks before freeing memory blocks.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 11 Nov 2005 11:55:47 +0000 (12:55 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 11 Nov 2005 11:55:47 +0000 (12:55 +0100)
The following functions check for NULL internally:
 free, kfree, xfree, free_xenheap_page[s]

Signed-off-by: Keir Fraser <keir@xensource.com>
35 files changed:
linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
linux-2.6-xen-sparse/drivers/xen/blkback/xenbus.c
linux-2.6-xen-sparse/drivers/xen/blkfront/blkfront.c
linux-2.6-xen-sparse/drivers/xen/blktap/xenbus.c
linux-2.6-xen-sparse/drivers/xen/netback/loopback.c
linux-2.6-xen-sparse/drivers/xen/netback/xenbus.c
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c
linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c
linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c
tools/blktap/blkif.c
tools/blktap/parallax/blockstore.c
tools/blktap/parallax/blockstored.c
tools/blktap/parallax/requests-async.c
tools/blktap/xenbus.c
tools/console/daemon/io.c
tools/ioemu/hw/magic-load.c
tools/ioemu/vnc.c
tools/libxc/xc_ia64_stubs.c
tools/libxc/xc_linux_build.c
tools/libxc/xc_vmx_build.c
tools/python/xen/lowlevel/xs/xs.c
tools/vtpm_manager/manager/securestorage.c
tools/vtpm_manager/util/bsg.c
tools/xenstat/libxenstat/src/xenstat.c
tools/xenstore/xenstored_core.c
xen/acm/acm_chinesewall_hooks.c
xen/acm/acm_simple_type_enforcement_hooks.c
xen/arch/ia64/xen/grant_table.c
xen/arch/x86/mm.c
xen/arch/x86/mtrr/generic.c
xen/arch/x86/vmx_vmcs.c
xen/common/event_channel.c
xen/common/grant_table.c
xen/common/page_alloc.c

index 2557d586d668cb49202982f3e369f688643650fe..1c6de43b4524a954d2521eae5898b5af40f1a2f6 100644 (file)
@@ -97,9 +97,7 @@ static inline unsigned char *
 transmission_set_buffer(struct transmission *t,
                         unsigned char *buffer, unsigned int len)
 {
-       if (NULL != t->request) {
-               kfree(t->request);
-       }
+       kfree(t->request);
        t->request = kmalloc(len, GFP_KERNEL);
        if (t->request) {
                memcpy(t->request,
@@ -113,12 +111,8 @@ transmission_set_buffer(struct transmission *t,
 static inline void
 transmission_free(struct transmission *t)
 {
-       if (t->request) {
-               kfree(t->request);
-       }
-       if (t->rcv_buffer) {
-               kfree(t->rcv_buffer);
-       }
+       kfree(t->request);
+       kfree(t->rcv_buffer);
        kfree(t);
 }
 
index 1e40eb1947bb07a9a398fcce77fe045f3f388ca3..1d5a01a10f01b64edbc35f4d7fd73a34b07cd77c 100644 (file)
@@ -48,8 +48,7 @@ static int blkback_remove(struct xenbus_device *dev)
        unregister_xenbus_watch(&be->backend_watch);
        if (be->blkif)
                blkif_put(be->blkif);
-       if (be->frontpath)
-               kfree(be->frontpath);
+       kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -274,8 +273,7 @@ static int blkback_probe(struct xenbus_device *dev,
  free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       if (frontend)
-               kfree(frontend);
+       kfree(frontend);
        kfree(be);
        return err;
 }
index c47b053b986ee01db1911ff36c6ec9f5b387a598..a865e88f319e8991e35623385abb50b1631c6b27 100644 (file)
@@ -607,8 +607,7 @@ again:
  destroy_blkring:
        blkif_free(info);
  out:
-       if (backend)
-               kfree(backend);
+       kfree(backend);
        return err;
 }
 
index b9a5f7a94f0d76a6cc25bdb3658b300a4b45babf..d93f6221366226d603fa11efa44fff4e1986f98f 100644 (file)
@@ -52,8 +52,7 @@ static int blkback_remove(struct xenbus_device *dev)
        unregister_xenbus_watch(&be->backend_watch);
        if (be->blkif)
                blkif_put(be->blkif);
-       if (be->frontpath)
-               kfree(be->frontpath);
+       kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -201,8 +200,7 @@ static int blkback_probe(struct xenbus_device *dev,
  free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       if (frontend)
-               kfree(frontend);
+       kfree(frontend);
        kfree(be);
        return err;
 }
index 9d6adaa56bf066d797dfa3e375a606a376aaab89..31f7978af822cfc3dcd578134617d2e4e699766d 100644 (file)
@@ -160,10 +160,8 @@ static int __init make_loopback(int i)
        return 0;
 
  fail:
-       if (dev1 != NULL)
-               kfree(dev1);
-       if (dev2 != NULL)
-               kfree(dev2);
+       kfree(dev1);
+       kfree(dev2);
        return err;
 }
 
index f6218fab424ffdd75fb1760f4a9657547f557c13..44b7391425bb572602515ca0e03193fadc72f20d 100644 (file)
@@ -46,8 +46,7 @@ static int netback_remove(struct xenbus_device *dev)
        unregister_xenbus_watch(&be->backend_watch);
        if (be->netif)
                netif_disconnect(be->netif);
-       if (be->frontpath)
-               kfree(be->frontpath);
+       kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -253,8 +252,7 @@ static int netback_probe(struct xenbus_device *dev,
  free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       if (frontend)
-               kfree(frontend);
+       kfree(frontend);
        kfree(be);
        return err;
 }
index 33d6464f27c364e3adec796a2cb7fe1a647aafed..93c39fd858bd6622e36eac227438983f5272d57e 100644 (file)
@@ -917,7 +917,7 @@ static int create_netdev(int handle, struct xenbus_device *dev,
        np->netdev = netdev;
 
  exit:
-       if ((err != 0) && (netdev != NULL))
+       if (err != 0)
                kfree(netdev);
        else if (val != NULL)
                *val = netdev;
index 543c88056004aa9a75fe1e5c30ccb58a2b0413ce..dd14f6087cd03bbe501086bef24dc0af931f3d67 100644 (file)
@@ -167,9 +167,7 @@ static void inline
 packet_free(struct packet *pak)
 {
        del_singleshot_timer_sync(&pak->processing_timer);
-       if (pak->data_buffer) {
-               kfree(pak->data_buffer);
-       }
+       kfree(pak->data_buffer);
        /*
         * cannot do tpmif_put(pak->tpmif); bad things happen
         * on the last tpmif_put()
index 954330d0de5b4f1c5113f57a98cb58db44a84477..5fd19de6d8095e052ac5bfc95121b39db9803e30 100644 (file)
@@ -41,19 +41,16 @@ static int tpmback_remove(struct xenbus_device *dev)
 {
        struct backend_info *be = dev->data;
 
-       if (be->watch.node) {
+       if (be->watch.node)
                unregister_xenbus_watch(&be->watch);
-       }
        unregister_xenbus_watch(&be->backend_watch);
 
        tpmif_vtpm_close(be->instance);
 
-       if (be->tpmif) {
+       if (be->tpmif)
                tpmif_put(be->tpmif);
-       }
 
-       if (be->frontpath)
-               kfree(be->frontpath);
+       kfree(be->frontpath);
        kfree(be);
        return 0;
 }
@@ -258,8 +255,7 @@ static int tpmback_probe(struct xenbus_device *dev,
 free_be:
        if (be->backend_watch.node)
                unregister_xenbus_watch(&be->backend_watch);
-       if (frontend)
-               kfree(frontend);
+       kfree(frontend);
        kfree(be);
        return err;
 }
index 6a39e057cfc886971aa0368e9ce061916a57c3f0..472a4000a1c28ab45af85770b07da5851376d5ae 100644 (file)
@@ -387,8 +387,7 @@ abort_transaction:
 destroy_tpmring:
        destroy_tpmring(info, &my_private);
 out:
-       if (backend)
-               kfree(backend);
+       kfree(backend);
        return err;
 }
 
index f4f386ced1a9a15ebab950945add8b2d728644b9..73afc50d95080f4a4ea380789498ff505f7b5d6a 100644 (file)
@@ -108,8 +108,7 @@ void free_blkif(blkif_t *blkif)
         }
         pblkif = &curs->hash_next;
     }
-    if (blkif != NULL)
-        free(blkif);
+    free(blkif);
 }
 
 void blkif_register_request_hook(blkif_t *blkif, char *name, 
index 7967edb5556a6109405d49516bd59d1994ff1eff..cecca2752a74c34e79ea16f8bb7fb06e8c5c81d4 100644 (file)
@@ -604,8 +604,7 @@ void *readblock_indiv(int server, uint64_t id) {
     return block;
 
     err:
-    if (qe->block)
-        free(qe->block);
+    free(qe->block);
     free((void *)qe);
     return NULL;
 }
@@ -1072,7 +1071,7 @@ uint64_t allocblock_hint(void *block, uint64_t hint) {
  *
  *   @return: pointer to new block, NULL on error
  */
-void *newblock() {
+void *newblock(void) {
     void *block = malloc(BLOCK_SIZE);
     if (block == NULL) {
         perror("newblock");
@@ -1089,7 +1088,6 @@ void *newblock() {
  *   @block: block to be freed
  */
 void freeblock(void *block) {
-    if (block != NULL)
         free(block);
 }
 
index 1ed2489b6c619a8eb1cc1f55d133701333cfb2da..76d5c009d8939e71a81085f888738e923a10c1ba 100644 (file)
@@ -232,7 +232,7 @@ uint64_t allocblock(void *block) {
  *
  *   @return: pointer to new block, NULL on error
  */
-void *newblock() {
+void *newblock(void) {
     void *block = malloc(BLOCK_SIZE);
     if (block == NULL) {
         perror("newblock");
@@ -249,7 +249,6 @@ void *newblock() {
  *   @block: block to be freed
  */
 void freeblock(void *block) {
-    if (block != NULL)
         free(block);
 }
 
index e89cb909ba72a511f781a737000af0d8cc8b26cc..75d3aa2f23254507d663432ad250ec620fc915e3 100755 (executable)
@@ -715,7 +715,7 @@ static void write_cb(struct io_ret r, void *param)
         r.u.i  = -1;
         /* free any saved node vals. */
         for (i=0; i<3; i++)
-            if (req->radix[i] != 0) free(req->radix[i]);
+            free(req->radix[i]);
         free(req);
         cb(r, req_param);
     }
index 99ba9ea49eaad738bbc9d9ef459da13bfeff4f53..93f21eb6bd5e5a7ae1608531a469ba2acd3d7627 100644 (file)
@@ -339,10 +339,8 @@ static int backend_remove(struct xs_handle *h, struct backend_info *be)
     /* Free everything else. */
     if (be->blkif)
         free_blkif(be->blkif);
-    if (be->frontpath)
-        free(be->frontpath);
-    if (be->backpath)
-        free(be->backpath);
+    free(be->frontpath);
+    free(be->backpath);
     free(be);
     return 0;
 }
@@ -406,8 +404,7 @@ static void frontend_changed(struct xs_handle *h, struct xenbus_watch *w,
     return;
 
  fail:
-    if (fepath)
-        free(fepath);
+    free(fepath);
 }
 
 
@@ -460,9 +457,7 @@ static void backend_changed(struct xs_handle *h, struct xenbus_watch *w,
     }
 
  fail:
-    if (path)
-        free(path);
-
+    free(path);
 }
 
 static void blkback_probe(struct xs_handle *h, struct xenbus_watch *w, 
@@ -537,12 +532,10 @@ static void blkback_probe(struct xs_handle *h, struct xenbus_watch *w,
        return;
 
  free_be:
-       if ((be) && (be->backend_watch.node))
+       if (be && (be->backend_watch.node))
             unregister_xenbus_watch(h, &be->backend_watch);
-       if (frontend)
-            free(frontend);
-        if (bepath)
-            free(bepath);
+        free(frontend);
+        free(bepath);
        free(be);
        return;
 }
index d4593f0d80154e9ac275517d593a6281912ed615..6a9de1b48f911fa1ac134bff5760dcd17bffbb3a 100644 (file)
@@ -344,8 +344,7 @@ static struct domain *create_domain(int domid)
 
        return dom;
  out:
-       if (dom->conspath)
-               free(dom->conspath);
+       free(dom->conspath);
        free(dom);
        return NULL;
 }
@@ -380,20 +379,16 @@ static void cleanup_domain(struct domain *d)
        if (!buffer_empty(&d->buffer))
                return;
 
-       if (d->buffer.data) {
-               free(d->buffer.data);
-               d->buffer.data = NULL;
-       }
-
        if (d->tty_fd != -1) {
                close(d->tty_fd);
                d->tty_fd = -1;
        }
 
-       if (d->conspath) {
-               free(d->conspath);
-               d->conspath = NULL;
-       }
+       free(d->buffer.data);
+       d->buffer.data = NULL;
+
+       free(d->conspath);
+       d->conspath = NULL;
 
        remove_domain(d);
 }
index 06a5f743af6f4c729c17f0ce92aad263f4ed105a..22ef06f56415d663e48c22b9e75f9dd86c7446e1 100644 (file)
@@ -196,10 +196,8 @@ static void load_symbols(struct elfhdr *ehdr, int fd)
        goto error_freesyms;
 
     /* Commit */
-    if (disas_symtab)
-       qemu_free(disas_symtab); /* XXX Merge with old symbols? */
-    if (disas_strtab)
-       qemu_free(disas_strtab);
+    qemu_free(disas_symtab); /* XXX Merge with old symbols? */
+    qemu_free(disas_strtab);
     disas_symtab = syms;
     disas_num_syms = nsyms;
     disas_strtab = str;
index 233db50f9656a9e4cb9cc230aa024d275aeed420..7a862ffe33a951b4efa83120d9eb14f78300e812 100644 (file)
@@ -187,8 +187,7 @@ static void mouse_find_bounding_box_of_difference(int* x,int* y,int* w,int* h) {
 
 static void start_mouse_calibration() {
        int size = screen->height*screen->paddedWidthInBytes;
-       if(mouse_magic->calibration)
-               free(mouse_magic->calibration);
+       free(mouse_magic->calibration);
        mouse_magic->calibration = malloc(size);
        memcpy(mouse_magic->calibration, screen->frameBuffer, size);
        calibration_step=0;
@@ -198,8 +197,7 @@ static void start_mouse_calibration() {
 }
 
 static void stop_mouse_calibration() {
-       if(mouse_magic->calibration)
-               free(mouse_magic->calibration);
+       free(mouse_magic->calibration);
        mouse_magic->calibration = 0;
 }
 
index 281ec51980cb315e181321d548eefd9a67d22e75..e926c87c333badbfcaef91bb3248e409d6fb2922 100644 (file)
@@ -77,7 +77,7 @@ int xc_ia64_copy_to_domain_pages(int xc_handle, uint32_t domid,
 {
     // N.B. gva should be page aligned
     
-    unsigned long *page_array=NULL;
+    unsigned long *page_array = NULL;
     int i;
 
     if ( (page_array = malloc(nr_pages * sizeof(unsigned long))) == NULL ){
@@ -99,8 +99,7 @@ int xc_ia64_copy_to_domain_pages(int xc_handle, uint32_t domid,
     return 0;
     
 error_out:
-    if (page_array)
-        free(page_array);
+    free(page_array);
     return -1;
 }
 
@@ -657,8 +656,7 @@ int xc_vmx_build(int xc_handle,
         goto error_out;
     }
 
-    if ( image != NULL )
-        free(image);
+    free(image);
 
     ctxt->flags = VGCF_VMX_GUEST;
     ctxt->regs.cr_iip = 0x80000000ffffffb0UL;
@@ -675,9 +673,7 @@ int xc_vmx_build(int xc_handle,
     return rc;
 
  error_out:
-    if ( image != NULL )
-        free(image);
-
+    free(image);
     return -1;
 }
 
index 49ed75e52d40dfe6bd3ceb31295fba5fa2f121f6..ff3ecf84f6e00fb743b68341eda1f13159aae2c2 100644 (file)
@@ -670,10 +670,8 @@ static int setup_guest(int xc_handle,
     return 0;
 
  error_out:
-    if ( mmu != NULL )
-        free(mmu);
-    if ( page_array != NULL )
-        free(page_array);
+    free(mmu);
+    free(page_array);
     return -1;
 }
 #endif
@@ -768,8 +766,7 @@ int xc_linux_build(int xc_handle,
         close(initrd_fd);
     if ( initrd_gfd )
         gzclose(initrd_gfd);
-    if ( image != NULL )
-        free(image);
+    free(image);
 
 #ifdef __ia64__
     /* based on new_thread in xen/arch/ia64/domain.c */
@@ -858,9 +855,7 @@ int xc_linux_build(int xc_handle,
         gzclose(initrd_gfd);
     else if ( initrd_fd >= 0 )
         close(initrd_fd);
-    if ( image != NULL )
-        free(image);
-
+    free(image);
     return -1;
 }
 
index f22d7ece4cebf315c811e4fec003e52e07b9e663..ea83366813d59aa2a33729bd130fad82f50d1ae5 100644 (file)
@@ -565,10 +565,8 @@ static int setup_guest(int xc_handle,
     return 0;
 
  error_out:
-    if ( mmu != NULL )
-        free(mmu);
-    if ( page_array != NULL )
-        free(page_array);
+    free(mmu);
+    free(page_array);
     return -1;
 }
 
@@ -663,8 +661,7 @@ int xc_vmx_build(int xc_handle,
         goto error_out;
     }
 
-    if ( image != NULL )
-        free(image);
+    free(image);
 
     ctxt->flags = VGCF_VMX_GUEST;
     /* FPU is set up to default initial state. */
@@ -710,9 +707,7 @@ int xc_vmx_build(int xc_handle,
     return rc;
 
  error_out:
-    if ( image != NULL )
-        free(image);
-
+    free(image);
     return -1;
 }
 
index 03e6f6dcd57787a5f0bfdd7abcac9cf09e27da61..6f195437a75bf15a3e54f8b836473046e191421d 100644 (file)
@@ -114,8 +114,7 @@ static PyObject *xspy_read(PyObject *self, PyObject *args, PyObject *kwds)
     }
     val = PyString_FromStringAndSize(xsval, xsval_n);
  exit:
-    if (xsval)
-        free(xsval);
+    free(xsval);
     return val;
 }
 
@@ -427,8 +426,7 @@ static PyObject *xspy_set_permissions(PyObject *self, PyObject *args,
     val = Py_None;
  exit:
     Py_XDECREF(tuple0);
-    if (xsperms)
-        free(xsperms);
+    free(xsperms);
     return val;
 }
 
@@ -541,8 +539,7 @@ again:
     /* Create tuple (path, token). */
     val = Py_BuildValue("(sO)", xsval[XS_WATCH_PATH], token);
  exit:
-    if (xsval)
-        free(xsval);
+    free(xsval);
     return val;
 }
 
index 5cef086802658241255181750b0c92b5b560bf57..82dd70f51438b8e23e9f9ff373248e428a1ea9e7 100644 (file)
@@ -393,8 +393,7 @@ TPM_RESULT VTPM_LoadService(void) {
   vtpmlogerror(VTPM_LOG_VTPM, "Failed to load service data with error = %s\n", tpm_get_error_name(status));
  egress:
   
-  if (flat_global)
-    free(flat_global);
+  free(flat_global);
   close(fh);
   
   return status;
index 1db59595a5e0b15b53586b74f78169004f17bbae..fa36ce70c8901d380532d90f891a6d7d31f26199 100644 (file)
@@ -616,8 +616,7 @@ static void BSG_Destroy_private(BSG_Type type, BSG_BYTE** src) {
   else if (format == __FMT_SIZE || format == __FMT_HSIZE) {
     s += size;
     BSG_BYTE* ptr = *(BSG_BYTE**) s;
-    if (ptr)
-      free(ptr);
+    free(ptr);
     s += sizeof(void*);
   } else if (format == __FMT_PACKED) {
 
index 58221ebdc67d391fa2b344c593879069e674896b..e01ee8c4ebb44df94b69043fd41a657da0c14119 100644 (file)
@@ -284,10 +284,8 @@ void xenstat_free_node(xenstat_node * node)
 
        if (node) {
                if (node->domains) {
-                       for (i = 0; i < node->num_domains; i++) {
-                               if (node->domains[i].name)
-                                       free(node->domains[i].name);
-                       }
+                       for (i = 0; i < node->num_domains; i++)
+                               free(node->domains[i].name);
 
                        for (i = 0; i < NUM_COLLECTORS; i++)
                                if((node->flags & collectors[i].flag)
index ae1bd6285b1901ae1fb7f92f0a00bb5d3063e6c5..b088bed6254c7f505934bf2019c46f00224b3919 100644 (file)
@@ -1411,8 +1411,6 @@ static void manual_node(const char *name, const char *child)
        talloc_free(node);
 }
 
-#
-
 static void setup_structure(void)
 {
        char *tdbname;
index 872575f7a6633cdebcfe766e220ccd74df1961b0..8071cec1be462ca8fc5159a7e19c39024b62124c 100644 (file)
@@ -117,8 +117,7 @@ static int chwall_init_domain_ssid(void **chwall_ssid, ssidref_t ssidref)
 static void chwall_free_domain_ssid(void *chwall_ssid)
 {
     traceprintk("%s.\n", __func__);
-    if (chwall_ssid != NULL)
-        xfree(chwall_ssid);
+    xfree(chwall_ssid);
     return;
 }
 
@@ -344,14 +343,10 @@ static int chwall_set_policy(u8 * buf, u32 buf_size)
     chwall_bin_pol.max_types = chwall_buf->chwall_max_types;
     chwall_bin_pol.max_ssidrefs = chwall_buf->chwall_max_ssidrefs;
     chwall_bin_pol.max_conflictsets = chwall_buf->chwall_max_conflictsets;
-    if (chwall_bin_pol.ssidrefs != NULL)
-        xfree(chwall_bin_pol.ssidrefs);
-    if (chwall_bin_pol.conflict_aggregate_set != NULL)
-        xfree(chwall_bin_pol.conflict_aggregate_set);
-    if (chwall_bin_pol.running_types != NULL)
-        xfree(chwall_bin_pol.running_types);
-    if (chwall_bin_pol.conflict_sets != NULL)
-        xfree(chwall_bin_pol.conflict_sets);
+    xfree(chwall_bin_pol.ssidrefs);
+    xfree(chwall_bin_pol.conflict_aggregate_set);
+    xfree(chwall_bin_pol.running_types);
+    xfree(chwall_bin_pol.conflict_sets);
     chwall_bin_pol.ssidrefs = ssids;
     chwall_bin_pol.conflict_aggregate_set = conflict_aggregate_set;
     chwall_bin_pol.running_types = running_types;
@@ -360,14 +355,10 @@ static int chwall_set_policy(u8 * buf, u32 buf_size)
 
  error_free:
     printk("%s: ERROR setting policy.\n", __func__);
-    if (ssids != NULL)
-        xfree(ssids);
-    if (conflict_sets != NULL)
-        xfree(conflict_sets);
-    if (running_types != NULL)
-        xfree(running_types);
-    if (conflict_aggregate_set != NULL)
-        xfree(conflict_aggregate_set);
+    xfree(ssids);
+    xfree(conflict_sets);
+    xfree(running_types);
+    xfree(conflict_aggregate_set);
     return -EFAULT;
 }
 
index 41bb1b393cec04c83d940ae3101b4e69ea35c86f..a1d87119e5ada5ed97b043b02f38bb8df79dc3e5 100644 (file)
@@ -130,8 +130,7 @@ static void
 ste_free_domain_ssid(void *ste_ssid)
 {
     traceprintk("%s.\n", __func__);
-    if (ste_ssid != NULL)
-        xfree(ste_ssid);
+    xfree(ste_ssid);
     return;
 }
 
@@ -320,8 +319,7 @@ ste_set_policy(u8 *buf, u32 buf_size)
     /* 3. replace old policy (activate new policy) */
     ste_bin_pol.max_types = ste_buf->ste_max_types;
     ste_bin_pol.max_ssidrefs = ste_buf->ste_max_ssidrefs;
-    if (ste_bin_pol.ssidrefs) 
-        xfree(ste_bin_pol.ssidrefs);
+    xfree(ste_bin_pol.ssidrefs);
     ste_bin_pol.ssidrefs = (domaintype_t *)ssidrefsbuf;
 
     /* clear all ste caches */
@@ -338,7 +336,7 @@ ste_set_policy(u8 *buf, u32 buf_size)
 
  error_free:
     printk("%s: ERROR setting policy.\n", __func__);
-    if (ssidrefsbuf != NULL) xfree(ssidrefsbuf);
+    xfree(ssidrefsbuf);
     return -EFAULT;
 }
 
index 01c19b066dc46ca52aef505472dd0c8e25eec054..ebdd46312915e064c217e813ff26e6a6eb13f633 100644 (file)
@@ -1348,8 +1348,7 @@ grant_table_create(
     if ( t != NULL )
     {
         xfree(t->active);
-        if ( t->maptrack != NULL )
-            free_xenheap_page(t->maptrack);
+        free_xenheap_page(t->maptrack);
         xfree(t);
     }
     return -ENOMEM;
index 118541f311f6c246c4bc492444892ccd4203b36a..5a9e4a3cc3e802066bad2d80803308538b61257b 100644 (file)
@@ -3369,10 +3369,8 @@ int ptwr_init(struct domain *d)
 
     if ( (x == NULL) || (y == NULL) )
     {
-        if ( x != NULL )
-            free_xenheap_page(x);
-        if ( y != NULL )
-            free_xenheap_page(y);
+        free_xenheap_page(x);
+        free_xenheap_page(y);
         return -ENOMEM;
     }
 
index 9ab5be4ec689e9a160af2758e0d8bfde4482df0e..025d033a640df6b5ad525e9e9c963c3141ba7ea4 100644 (file)
@@ -71,8 +71,7 @@ void __init get_mtrr_state(void)
 /*  Free resources associated with a struct mtrr_state  */
 void __init finalize_mtrr_state(void)
 {
-       if (mtrr_state.var_ranges)
-               xfree(mtrr_state.var_ranges);
+       xfree(mtrr_state.var_ranges);
        mtrr_state.var_ranges = NULL;
 }
 
index 08a38024a894f89bc0b27bb0c79c9d7f577c85f8..39dd8342f20face47bc6f2085dd084d04c43da69 100644 (file)
@@ -564,19 +564,14 @@ err_out:
 
 void destroy_vmcs(struct arch_vmx_struct *arch_vmx)
 {
-    if(arch_vmx->vmcs != NULL)
-        free_vmcs(arch_vmx->vmcs);
-    if(arch_vmx->io_bitmap_a != 0) {
-        free_xenheap_pages(
-            arch_vmx->io_bitmap_a, get_order_from_bytes(0x1000));
-        arch_vmx->io_bitmap_a = 0;
-    }
-    if(arch_vmx->io_bitmap_b != 0) {
-        free_xenheap_pages(
-            arch_vmx->io_bitmap_b, get_order_from_bytes(0x1000));
-        arch_vmx->io_bitmap_b = 0;
-    }
-    arch_vmx->vmcs = 0;
+    free_vmcs(arch_vmx->vmcs);
+    arch_vmx->vmcs = NULL;
+
+    free_xenheap_pages(arch_vmx->io_bitmap_a, get_order_from_bytes(0x1000));
+    arch_vmx->io_bitmap_a = NULL;
+
+    free_xenheap_pages(arch_vmx->io_bitmap_b, get_order_from_bytes(0x1000));
+    arch_vmx->io_bitmap_b = NULL;
 }
 
 /*
index f0feb65fd8c6ea3c6c44f9d8645d13b206ddef04..6f5a34774b0f6ac314eceb40b5d1412b0ce5f8e9 100644 (file)
@@ -621,8 +621,7 @@ void evtchn_destroy(struct domain *d)
             (void)__evtchn_close(d, i);
 
     for ( i = 0; i < NR_EVTCHN_BUCKETS; i++ )
-        if ( d->evtchn[i] != NULL )
-            xfree(d->evtchn[i]);
+        xfree(d->evtchn[i]);
 }
 
 /*
index d9e64d3d561fd43853bdc9bf61d0360970d9fe2f..6425ab8f9fe9f817a9adb927a79492cb11d1c374 100644 (file)
@@ -1107,8 +1107,7 @@ grant_table_create(
     if ( t != NULL )
     {
         xfree(t->active);
-        if ( t->maptrack != NULL )
-            free_xenheap_page(t->maptrack);
+        free_xenheap_page(t->maptrack);
         xfree(t);
     }
     return -ENOMEM;
index d2321a747eaeb7e4516a00d1d5e93592781c307c..d5f1ed0263e13c8d6f45bdb0c8a03ee3d679178a 100644 (file)
@@ -470,6 +470,9 @@ void free_xenheap_pages(void *v, unsigned int order)
 {
     unsigned long flags;
 
+    if ( v == NULL )
+        return;
+
     memguard_guard_range(v, 1 << (order + PAGE_SHIFT));    
 
     local_irq_save(flags);